#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <unistd.h>
#include <fcntl.h>
#include <semaphore.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define HTTP_REQ "GET /"

int main(int argc, char *argv[])
{
	int escuchafd, n;
	char peticion[256]=HTTP_REQ, buffer[1024];
	struct sockaddr_in donde_escucho;

	if(argc!=3) {
		printf("Uso: cliente-tcp <ip> <puerto>\n");
		exit(EXIT_FAILURE);
	}
	
	escuchafd=socket(PF_INET, SOCK_STREAM, 0);
	donde_escucho.sin_family=AF_INET;
	donde_escucho.sin_port=htons(atoi(argv[2])); //htons para no tener problemas con la arquitectura
	inet_aton(argv[1], &donde_escucho.sin_addr);

	if(connect(escuchafd, (struct sockaddr *)&donde_escucho, sizeof(donde_escucho))!=0) {
		perror("connect()");
		exit(EXIT_FAILURE);
	}

	strcat(peticion, argv[2]);
	
	//write(escuchafd, peticion, sizeof(peticion));
	//write(escuchafd, "Hola Servidor\n", sizeof "Hola Servidor\n");
	write(escuchafd, "hola", sizeof "hola");	
				
	while((n=read(escuchafd, buffer, sizeof buffer))){

		//n=(n-2);
		//buffer[n]=0;
		//buffer[4095]=0;
		
		printf("El server me dijo '%s'\n", buffer);
		
		if(!strcmp(buffer, "quien?"))
		{
			printf("El server me pregunto quien soy?\n");
			write(escuchafd, "Soy huevo", sizeof "Soy huevo");
			read(escuchafd, buffer, sizeof buffer);
			if (!strcmp(buffer, "chau cliente"))
			{
				printf("Le digo chau al server!!!\n");
				write(escuchafd, "chau", sizeof "chau");
			}
		}
		else
		{
			printf("No comprendo");
		}
	}
	
	printf("\n\nCLIENTE TERMINADO\n");

	return 0;
}






